/**
 * @name: 常用vuex
 * @date: 2020.2.13
 */
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

var _this = new Vue();

const store = new Vuex.Store({
	state: {
		//用于在两个页面传递大量数据时的缓存
		tmpData: '',
		//用户默认位置（经纬度），打开首页后重新设置
		location: {
			latitude: 31.839850, //默认纬度
			longitude: 117.209004, //默认经度
		},
		// 用户id
		userId: '',
		//用于是否显示登录提示弹窗
		showLogin: false,
		//是否到达底部开始加载下一页
		btmLoad: false,
		//用户访问网络令牌
		token: '',
		//是否处于登录状态
		isLogin: false,
		//是否有过token
		hasToken: false,
		//用户详细信息(引用时需转为object)
		userinfo: '',
		//用户某个运营商可分配余额
		dtBalance: -1,
		//用户积分
		integral: 0,
		// 支付方式 teambalance: 团队支付， 账户余额：paybalance ， 微信支付：payonline， 免单支付：payfree
		payType: ''
	},
	mutations: {
		//修改用户积分
		setIntegral(state, num) {
			let a = num !== null && num !== undefined ? num : 0;
			state.integral = a;
		},
		//修改用户某个运营商可分配余额
		setDtBalance(state, num) {
			state.dtBalance = num;
		},
		//修改缓存值
		setTmpData(state, data) {
			state.tmpData = data;
		},
		//修改location
		setLocation(state, obj) {
			state.location = obj;
		},
		//修改个人信息
		setUserinfo(state, str) {
			state.userinfo = str;
		},
		//将状态调整为已登录
		login(state, json) {

			state.token = json.token || json;
			state.userId = json.userId || '';
			state.isLogin = true;
			state.hasToken = true;
			_this.$cache.set(_this.$tmp.TOKEN_INFO, json.token || json);
		},
		//将状态调整为未登录
		logout(state) {
			state.token = '';
			state.isLogin = false;
			uni.removeStorageSync(_this.$tmp.TOKEN_INFO);
		},
		//是否显示登录弹窗
		showLogin(state, bool) {
			state.showLogin = bool;
		},
		//是否到达底部开始加载下一页
		btmLoad(state, bool) {
			state.btmLoad = bool;
		},
		// 设置支付方式
		setPayType(state, str) {
			state.payType = str;
		}
	},
	getters: {

	},
	actions: {

	}
});

Vue.prototype.$store = store;
